title: LVS 三种模式详解 - NAT模式
catgories: Linux

tags: [LVS]

        LVS三种模式: NAT、IP Tunnel、DR

NAT模式-网络地址转换

        Virtualserver via Network address translation(VS/NAT)

        这个是通过网络地址转换的方法来实现调度的。首先调度器(LB)接收到客户的请求数据包时(请求的目的IP为VIP),根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后调度就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP),这样真实服务器(RS)就能够接收到客户的请求数据包了。

        真实服务器响应完请求后,查看默认路由(NAT模式下我们需要把RS的默认路由设置为LB服务器的地址。)把响应后的数据包发送给LB,LB再接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

        调度过程IP包详细图:

原理图简述:

  1. 客户端请求数据,目标IP为VIP

  2. 请求数据到达LB服务器,LB根据调度算法将目的地址修改为RIP地址(RS的内网IP)及对应端口(8080),此RIP地址是根据调度算法得出的。并在连接HASH表中记录下这个连接。

  3. 数据包从LB服务器到达RS服务器,然后RS进行响应。RS的网关必须是LB的内网ip,然后将数据返回给LB服务器。

  4. 收到RS的返回后的数据,根据连接HASH表修改源地址VIP和目标地址CIP及对应端口80,其中源地址变成了VIP,目的地址变成了CIP,这样数据就从LB出发到达客户端。

  5. 客户端收到的就只能看到VIP\DIP信息。

        总结: NAT模式最重要的环节就是第2和第4,这两步是通过iptables的nat表实现的,就是所谓的网络地址转换。